BUG: Internet Explorer Loses Track of Cache's Size

After Internet Explorer 5 was released, I let it manage the cache on its own for a few months to see how well it performed. So please note that everything in this paragraph implies use of IE without using CacheSentry, and any settings referred to are IE's settings, not CacheSentry's. One of the things I noticed after a little while was downloading large files (around 10-25 megabytes) would cause IE5 to start removing files from the cache long before it became full. I checked for strays and found none, and clearing the cache didn't fix the problem. The only way I was able to fix it was to delete the index file that keeps track of the cache's contents, so I knew it had to be a problem with that file. Further investigation revealed IE5 (and possibly IE4) have a problem with keeping track of how much space the files in the cache are actually taking up. There is a place in the INDEX.DAT file (the cache's index to the files) that stores a 64-bit value of what IE thinks is the cache's current size. It compares this value to the size you have set IE's cache to grow to, and if this value is larger than your setting, IE makes room in the cache. If this value is wrong and is too high, IE will think the cache is full before it actually is and you won't make full use of the size to which you have set your cache. If the value is too low, the cache will grow larger than the size you have set it.

Now, how does this bug affect CacheSentry? As you might guess, this is mostly only an issue if you are letting IE manage the cache itself - with CacheSentry this usually isn't a problem because CacheSentry always recalculates the actual size of the cache every time it checks see if it needs to make more room. However, this isn't foolproof - if IE thinks the cache has grown larger than the maximum value you can set for IE's cache, IE will again take control of cache deletions and render CacheSentry ineffective! The newly released version 1.44 fixes this bug by changing the size value in the INDEX.DAT file to the correct value.

Details of the fix

The INDEX.DAT file is always in use by the operating system, therefore it is not possible for CacheSentry to make changes to that file while you are using your computer. In order to fix it, CacheSentry runs a small companion program that modifies INDEX.DAT when you restart your machine. (This the FIXINDEX.EXE program that comes in the CacheSentry archive.) This program is only run when the fix is required, and CacheSentry is set up to allow the INDEX.DAT file to be off by 1 megabyte before applying the fix. (This was done so you wouldn't have to constantly reboot every time the INDEX.DAT file was off by a small amount.) You can tell if the fix will be applied by looking at the last line of the CacheSentry activity log after it does its initial scan after you start it up and it will say the index file's cache size was wrong, by how much, and that the fix will be quietly applied the next time you reboot your computer. Please see the Special Notes section regarding some caveats with this fix!

If you are still using IE 3, you don't have this bug.

Return to the CacheSentry page